約 6,558,874 件
https://w.atwiki.jp/gendai4koma/pages/138.html
Drawing Musicは「現代4コマ」アカウントより2024年2月19日16 00に発表された、EPOCALCによる作品。また、EPOCALCによるサウンド・アート4コマは暫定的に本記事にまとめて掲載される。 概要 Drawing Music サウンド・アート4コマの数少ない実例であるが、楽譜に書き起こされているという点において他作品と峻別される。 それぞれ指示が記された一線譜の4セクション構成となっている。 ─── Ⅰ. 鉛筆を取り出し、枠を描く。[終止] Ⅱ. 枠を描く。[終止] Ⅲ. 枠を描く。[終止] Ⅳ. 枠を描き、鉛筆を置く。[終止] Fin. ─── EPOCALCのサウンド・アート4コマ作品 いずれも「Drawing Music」と同様、「現代4コマ」アカウントより発表されている、楽譜に書き起こされているといった共通点が見られる。 「無題」 「4コマのための合唱曲」 「Four Voices = Four Frames」
https://w.atwiki.jp/jpops/pages/12233.html
Drawingsをお気に入りに追加 Drawingsのリンク #bf Amazon.co.jp ウィジェット Drawingsの報道 Nabowaの3年ぶり12曲入りのニューアルバム『DRAWINGS[CD+DVD]』。先行レコ発でリリース前の同作のカセットテープを来場者全員にプレゼント - FNMNL Google Docs、リアルタイム性をさらに高める―新アプリDrawings追加 - TechCrunch Drawingsとは Drawingsの86%は希望で出来ています。Drawingsの14%はハッタリで出来ています。 Drawings@ウィキペディア Drawings Amazon.co.jp ウィジェット 掲示板 名前(HN) カキコミ すべてのコメントを見る ページ先頭へ Drawings このページについて このページはDrawingsのインターネット上の情報を集めたリンク集のようなものです。ブックマークしておけば、日々更新されるDrawingsに関連する最新情報にアクセスすることができます。 情報収集はプログラムで行っているため、名前が同じであるが異なるカテゴリーの情報が掲載される場合があります。ご了承ください。 リンク先の内容を保証するものではありません。ご自身の責任でクリックしてください。
https://w.atwiki.jp/taskeru/pages/13.html
プロファイルの左側の部分に相当。 どういう条件の時にタスクを実行するかの指定。 英語できないからかなり適当。 ■Application■ [アプリが起動した時。 複数選択可能。] ■Time■ [○○:○○~○○:○○ 時間帯を指定したい時。1時間ごとに実行とかも可能。] ・From ⇒何時何分から。 ・Repeat ⇒~1時間ごとにみたいな時に使用。分指定の場合2分以上に指定しないとエラーが出る。 ・to ⇒何時何分まで。 ■Day■ [月日を指定したい時。曜日の指定も可能。] ■Location■ [場所を条件指定したい時。自宅に近づいたら、Wifi Onとかする時に使用。] ・Net ⇒3G or Wifi 回線を利用して現在地取得。(メリット:電池消費少ない。デメリット:現在地が大雑把) ・GPS ⇒GPS を利用して現在地取得。(メリット:現在地が正確。デメリット:電池消費多い。 ・GetFix ⇒現在時情報の修正? ■State■ [~の状態になった時と思う。一つプロファイルに二つまで指定可能。] ・Airplane Mode ⇒機内モードの時。 ・Battery Level ⇒バッテリーの% が From ~ To 間の時。 ・Bluetooth Connected ⇒ ・Calendar Entry ⇒ ・Cell Near ⇒指定した携帯基地局エリアに近づいた時。 ・Docked ⇒ ・Headset Plugged ⇒ ・Incoming Call ⇒電話がかかって来た時。家族・友人指定可能。 ・Keyboard Out ⇒ ・Light Level ⇒画面に受ける光の強さ が From ~ To の間の時。日中なら42以上? ・Media Button ⇒ ・Missed Call ⇒ ・Mobile Network ⇒ ・Orientation ⇒本体の傾きの指定したい時。仰向け/うつ伏せ etc ・Power ⇒ ・Proximity Sensor ⇒ ・Signal Strength ⇒ ・Unread Text ⇒ ・USB Plugged ⇒ ・Variable Value ⇒変数の値が条件に一致した時。 ・Wifi Connected ⇒Wifiに繋がった時。※SSIDやMACアドレスを指定る必要あり。 ・Wifi Near ⇒Wifi環境が近くにある時。※SSIDやMACアドレスを指定る必要あり。 ■Event■ [Stateに似てるが、恐らく自分で何かを動作させた時的なニュアンスかも。] ・Date/Time ⇒ ・Display ⇒ディスプレイ On/Off/Unlock した時。 ・File ⇒ ・Hardware ⇒ ・Misc ⇒ ・Phone ⇒電話関連の動作をした時 ・Power ⇒ ・System ⇒ ・UI ⇒ ・Variable ⇒ ・3rd Party ⇒対応した外部アプリが動作した時? ★★設定項目の随所で見受けられる、"Invert"というチェック項目があるが、"Not"的な意味合い。 例:OrientationでFaceUP(仰向け) を選択して、Invertにチェックを入れると、仰向け以外の時という意味になる。
https://w.atwiki.jp/android/pages/29.html
http //code.google.com/android/reference/android/content/Context.html サービスの起動とbind システムサービスの取得 IntentとIntentReceiverの制御 Permissionの管理 SQLiteDatabaseの作成とオープン ファイルの管理 リソースの取得 壁紙の取得と設定 単純な警告ダイアログの表示
https://w.atwiki.jp/kuin/pages/27.html
標準ライブラリ - Draw 説明 Drawは、文字や画像や3Dデータといったものを動かしたり、変形して表示させたりすることが出来るメソッドを多数持っています。ステージ全体に効果を与えるものと、クラスからインスタンスを生成してごにょごにょするものと2種類あるので、注意しよう。 所有メソッドLoadTex(path []char) @CTex説明 引数 戻り値 サンプルコード(Ver0.031) LoadFont(path []char) @CFont説明 引数 戻り値 サンプルコード(Ver0.031) LoadObj(path []char) @CObj説明 引数 戻り値 サンプルコード(Ver1.00) テンプレメソッド(ひきすー ひきすうかたー) もどりちー説明 引数 戻り値 サンプルコード(Ver0.031) CTex説明 補足 所有メソッドDraw(sx float,sy float,sw float,sh float,dx float,dy float,r float,g float,b float,a float) なし DrawScale(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,r float,g float,b float,a float) なし DrawRot(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,cx float,cy float,angle float,r float,g float,b float,a float) なし Width() float Height() float CFont説明 補足 所有メソッドMakeTex(size int,str []char,margin int) Draw@CTex ソースコードをUTF-8で保存しないと全角文字が文字化けします!(情報置いとくので整備おねがいします・・・) CObj説明 補足 所有メソッドDraw(tex CTex , normal CTex , group int , anim float) なし 所有メソッド LoadTex(path []char) @CTex 説明 指定したファイルパスに存在するテクスチャ(俗にいう画像ファイル)をロードします。この処理はそこそこ重たいので極力呼び出さないようにしましょう(基本は初回のみで)ちなみに解放処理はオートでやってくれます。メモリ解放忘れで闇だった旧GBerryとは違うのだ(しろめ) 引数 path []charファイルパスを指定します dbgresディレクトリからの相対パスにも対応しています。 指定することが出来るテクスチャデータは、KuinTexを使用して.kntexというファイルフォーマットに変換したもののみが使用出来ます。 戻り値 Draw@CTexDraw@CTex型のクラスインスタンスが返ります。 このLoadTexで得たクラスインスタンスを利用して、表示とか変形とかの処理を行います。 サンプルコード(Ver0.031) func Main(){Draw@CTexの項で嫌ほど使うので省略します}end func LoadFont(path []char) @CFont 説明 指定したファイルパスに存在するフォントデータ(.ttfとかとか)をロードします。この処理はそこそこ重たいので極力呼び出さないようにしましょう(基本は初回のみで)ちなみに解放処理はオートでやってくれます。メモリ解放忘れで闇だった旧GBerryとは違うのだ(しろめ) 引数 path []charファイルパスを指定します dbgresディレクトリからの相対パスにも対応しています。 指定することが出来るフォントデータは、ttcやttfでは動作を確認しました。(TrueTypeフォント系は少なくとも大丈夫っぽい。) 戻り値 Draw@CFontDraw@CFont型のクラスインスタンスが返ります。 このLoadFontで得たクラスインスタンスを利用して、色んな(≒任意の)文字列のテクスチャーデータを生成することができます。 サンプルコード(Ver0.031) func Main(){Draw@CFontの項で嫌ほど使うので省略します}end func LoadObj(path []char) @CObj 説明 指定したファイルパスに存在する3Dデータ(独自形式knobj)をロードします。この処理はそこそこ重たいので極力呼び出さないようにしましょう(基本は初回のみで)ちなみに解放処理はオートでやってくれます。メモリ解放忘れで闇だった旧GBerryとは違うのだ(しろめ) 引数 path []charファイルパスを指定します dbgresディレクトリからの相対パスにも対応しています。 指定することが出来る3Dデータは、KuinObjで変換したものでは動作を確認しました 戻り値 Draw@CObjDraw@CObj型のクラスインスタンスが返ります。 このLoadObjで得たクラスインスタンスを利用して、表示とか変形の処理を行います。 サンプルコード(Ver1.00) func Main(){Draw@CObjの項で嫌ほど使うので省略します}end func テンプレメソッド(ひきすー ひきすうかたー) もどりちー 説明 テンプレメソッドの説明をここにー 引数 ひきすー ひきすうかたーひきすーのせつめー 戻り値 もどりちかたーもどりちせつめいー サンプルコード(Ver0.031) func Main(){素敵なソースコードをここにー}end func CTex 説明 Kuinでテクスチャ(画像)を扱う為に使うクラスです。基本的には[#LoadTex]メソッドの戻り値でインスタンスを得るため、このクラスを自分でインスタンス生成することはないです[要出典]ちなみに、このクラスのコンストラクタを呼び出すと、16#00010006の実行時エラーを吐きます。 補足 なお、今回の説明で、何ぶん画像がないと説明しづらい部分があるので、特別にくいなちゃんを用意しました(256x256)。このくいなちゃんを「kuina.png」で保存し、KuinTexで「kuina.png.kntex」となったものを「kuina.kntex」にリネームし、以降のサンプルコード中に使用するものとする。 所有メソッド Draw(sx float,sy float,sw float,sh float,dx float,dy float,r float,g float,b float,a float) なし 説明 このインスタンスに指定されている.kntexの画像データを、指定した座標や色情報を元にKuin上に表示します。このメソッドはDrawScaleのラッパーです。つまりは、拡大率100%(拡大縮小無し)の、DrawScaleを内部で呼び出してるのと全く同じです。 引数sx float略称はおそらく「ソースx座標」の意味だと思います 画像ファイルの中の、表示したい左上の座標のx座標を指定します。 いつもは0.0だと思いますが、例えばbullet.pngに色んな弾をまとめて1枚の画像としてkntexに変換した時なんかに、左上の座標を切り替えるだけで、1つのインスタンスから何種類もの弾丸を取り出すことが出来ます。こうすることで扱いやすさ的にも処理速度的にもプラスに出来ます。 sy float略称はおそらく「ソースy座標」の意味だと思います sxのy座標バージョンです。 正直浮動小数点である理由はよく分かりません。整数のピクセル値以外を左上の座標に指定するメリットがある場面が想像出来ませんし、○○.0って打つ作業が面倒くさいのでint型にして欲しいです(消される) sw float略称はおそらく「ソースwidth(横幅)」の意味だと思います 画像ファイルの中の、表示したい横幅pxを指定します 解釈を変えれば、(右下のx座標 - 左上のx座標)の座標を指定するとも取れますね。 sh float略称はおそらく「ソースheight(縦幅)」の意味だと思います 画像ファイルの中の、表示したい縦幅pxを指定します 解釈を変えれば、(右下のy座標 - 左上のy座標)の座標を指定するとも取れますね。 どうでもいいけどsw,shに関してもint型に(ry dx float略称はおそらく「ディスプレイx座標」の意味だと思います Kuin上の表示したいx座標を指定します。 0.0と指定したら左端に画像が表示されるし、100.0と指定したら左側から100px右に移動した位置に表示されます。 dy float略称はおそらく「ディスプレイy座標」の意味だと思います Kuin上の表示したいy座標を指定します。 0.0と指定したら上端に画像が表示されるし、100.0と指定したら上側から100px下に移動した位置に表示されます。 r float画像の赤っぽさ成分を指定します。 基本的には1.0で。赤っぽさを弱めたい場合には0.0に近づけると赤っぽくなくなります。 g float画像の緑っぽさ成分を指定します。 基本的には1.0で。緑っぽさを弱めたい場合には0.0に近づけると緑っぽくなくなります。 b float画像の青っぽさ成分を指定します。 基本的には1.0で。青っぽさを弱めたい場合には0.0に近づけると青っぽくなくなります。 a float画像の不透明度成分を指定します。 基本的には1.0で。不透明度を弱めたい場合には0.0に近づけると\アッカリーン/します 戻り値なしないよっ サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる}while(true)do Kuin@Act() {kuina.kntexの画像ファイルから、座標(0,0)の位置から横幅256px、縦幅256pxを取り出しMain_dbg.exeウィンドウの左上から(100,100)の位置にRGBAの全てを100%出力で、画像を表示させる}do kuinaImage.Draw(0.0,0.0,256.0,256.0,100.0,100.0,1.0,1.0,1.0,1.0)end whileend func DrawScale(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,r float,g float,b float,a float) なし 説明 画像の表示だけならDrawで行えますが、画像の拡大縮小を考慮した上で表示したい場合は、こちらのDrawScaleを使用します拡大縮小ができるってだけで、基本的にはDrawと一緒なので、引数もDrawと異なる部分だけを説明しますなお、dwやdhに負数を入れることで、画像の左右反転や上下反転が可能になります。かなりエグいサンプルコードを用意しましたので、参考になりませんがそちらもどうぞ。 引数sx float sy float sw float sh float dx float dy float dw float略称はおそらく「ディスプレイwidth(横幅)」の意味だと思います Kuin上の表示したい横幅を指定します。 swと同じにしたら等倍で表示されるし、swの2倍の値を入れたら2倍横長になります 負数を入れたら左右反転します。そこそこ重要なテクニックです。 dh float略称はおそらく「ディスプレイheight(縦幅)」の意味だと思います Kuin上の表示したい縦幅を指定します。 shと同じにしたら等倍で表示されるし、shの2倍の値を入れたら2倍横長になります 負数を入れたら上下反転します。そこそこ重要なテクニックです。 r float g float b float a float 戻り値なしないよっ サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる} const FPS int 30 {Ver0.031では30fpsなので30という定数を入れる}var scale floatvar sin floatvar cos floatvar dy floatvar width floatvar height float while(true)do Kuin@Act() {kuina.kntexの画像ファイルから、座標(0,0)の位置から横幅256px、縦幅256pxを取り出しMain_dbg.exeウィンドウの左上から(200,100)の位置で、横幅128px、縦幅128pxを基準の大きさにして横幅の値を1秒周期で-128~128に変化させ、あたかもdx 100pxを中心に横方向回転してるかの如く表現し縦幅の値を1秒周期で96~160に変化して、パースを付けて立体感を表現するその際に、y座標にバイアスをかけて位置に違和感がないようにするRGBAの全てを100%出力で、画像を表示させる} do scale ((Kuin@Cnt()-1)%FPS*12) $ float {FPS(30)で割った余りを12倍してfloatにキャストすると0≦scale 360の値になる}do scale * Lib@Pi / 180.0 {それをπ/180倍することで、ラジアンの値に変換する}do sin Lib@Sin(scale) {それをsinの値にすると、 0⇒+1⇒ 0⇒-1⇒ 0の順番で値が変化していく}do cos Lib@Cos(scale) {それをcosの値にすると、+1⇒ 0⇒-1⇒ 0⇒+1の順番で値が変化していく}do width cos * 128.0 {cosを128倍すると、 +128⇒ 0⇒-128⇒ 0⇒+128の順番で値が変化していく}do height 128.0 + (sin * 32.0) {sinを32倍して128に足すと、+128⇒+160⇒+128⇒+96⇒+128の順番で値が変化していく}do dy -((sin * 32.0)/2.0) {heightの増分の半分の大きさの符号反転の値だけy方向に移動させることで、違和感を無くす}do kuinaImage.DrawScale(0.0,0.0,256.0,256.0,200.0,100.0+dy,width,height,1.0,1.0,1.0,1.0) {理解の助けになるように、widthだけ変化させたものを400,400に表示します}do kuinaImage.DrawScale(0.0,0.0,256.0,256.0,400.0,400.0,width,128.0,1.0,1.0,1.0,1.0) {理解の助けになるように、height(とdy)だけ変化させたものを50,400に表示します}do kuinaImage.DrawScale(0.0,0.0,256.0,256.0,50.0,400.0+dy,128.0,height,1.0,1.0,1.0,1.0)end whileend func DrawRot(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,cx float,cy float,angle float,r float,g float,b float,a float) なし 説明 画像を回転させる必要もある場合にはこのDrawRotを使用します。これも毎度のことながら、DrawScaleとほぼ同じなので、引数の説明は適宜省略していきます。 引数sx float sy float sw float sh float dx float dy float dw float dh float cx float略称はおそらく「サークル(円形)x座標」の意味だと思います。もしかしたら「センター(中心)x座標」かもしれない。 回転中心となるx座標を指定します。これはdxからの相対値です。 どういう回転をさせるかにもよるけど、大抵はdwの半分の値か、0.0だと思いますね。 cy float略称はおそらく「サークル(円形)y座標」の意味だと思います。もしかしたら「センター(中心)y座標」かもしれない。 回転中心となるy座標を指定します。これはdyからの相対値です。 どういう回転をさせるかにもよるけど、大抵はdhの半分の値か、0.0だと思いますね。 angle float回転する角度を指定します。 単位はラジアンです。degreeだと思ってドヤ顔で360.0とか打たないでください死んでしまいます r float g float b float a float 戻り値なしないよっ サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる} const FPS int 30 {Ver0.031では30fpsなので30という定数を入れる}var angle float while(true)do Kuin@Act() {kuina.kntexの画像ファイルから、座標(0,0)の位置から横幅256px、縦幅256pxを取り出しMain_dbg.exeウィンドウの左上から(100,100)の位置で、横幅128px、縦幅128pxに縮小してまた、回転中心を(64.0,64.0)として、1秒間に1回転するスピードでぐるぐる回すRGBAの全てを100%出力で、画像を表示させる} do angle ((Kuin@Cnt()-1)%FPS*12) $ float {FPS(30)で割った余りを12倍してfloatにキャストすると0.0≦angle 360.0の値になる}do angle * Lib@Pi / 180.0 {それをπ/180.0倍することで、ラジアンの値に変換する}do kuinaImage.DrawRot(0.0,0.0,256.0,256.0,100.0,100.0,128.0,128.0,64.0,64.0,angle,1.0,1.0,1.0,1.0)end whileend func Width() float 説明 読み込んだ.kntexファイルの横幅を得ます。メソッドなので、当然Getterです。 引数なしないよっ 戻り値float.kntexファイルの横幅(px)を返します。 サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる}do Dbg@Log("横幅は" ~ kuinaImage.Width().ToStr() ~ "pxです") {横幅は256pxです と表示される}end func Height() float 説明 読み込んだ.kntexファイルの縦幅を得ます。メソッドなので、当然Getterです。 引数なしないよっ 戻り値float.kntexファイルの縦幅(px)を返します。 サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる}do Dbg@Log("縦幅は" ~ kuinaImage.Height().ToStr() ~ "pxです") {縦幅は256pxです と表示される}end func CFont 説明 Kuinで文字を表示させる場合に便利なクラスとしてCFontがあります。CFontはttf(TrueTypeFont)のようなデータを利用して表示させるため、従来のKuin0.02xのように、自分で文字を画像化して。。。の作業を簡単化&動的化できるスグレモノです。是非マスターしましょう。 補足 なお、この説明の本筋とは逸れますが、PCにすでにインストールされているフォントのデータを取り出す方法を紹介します。(Win7のみです。それ以外のOSは各自ググってください) コントロールパネルを開きます 表示方法を「カテゴリ」にします デスクトップのカスタマイズを選択します ページが遷移されるので、項目の中から「フォント」を選択します ページが遷移され、フォント一覧が出てくるので、その中から使用したいフォントをコピーします コピーしたフォントデータをKuin側のdbgresディレクトリに突っ込めばバッチリです。 所有メソッド MakeTex(size int,str []char,margin int) Draw@CTex 説明 Draw@LoadFontメソッドで読み込んだCFontを文字の書かれたCTexに変換します。このメソッドの戻り値であるCTexデータは、.kntexからLoadTexした場合と同様に、Drawメソッド等で描画できます。PhotoShop等のソフトを使用している方なら、「フォントデータのラスタライズを行います」と説明すれば分かりやすいんじゃないでしょうか。このメソッドはそんなに頻繁に呼び出すべきではないのは確かなのですが、ノベルゲーム等、文字の自動スクロールなどを実装する場合は頻繁に呼び出さざるを得ない場面があり、悲しみを生みます。しかしLoadFontと明確に役割が分割されたので旧GBerryよりは高速化も図れていい着地点についたのではないでしょうか。 引数size intフォントサイズを指定します pxと必ずしも一致するとは限りません。というか大抵一致しません。あくまでフォントサイズなので注意。 str []charテクスチャー化するときの文字を指定します ここに与える文字を、数フレームごとに増やしていくと、ノベルゲームっぽい自動スクロールも作れます。詳しくはサンプルコードで。 margin int文字の間の余白を指定します。 きっちりつめて表示するなら0、だだっ広く表示するなら正の整数、重ねて表示させるなら負の整数を入れます。 ちなみに余談ですがこのメソッド単体では複数行に対応していません。 CFont.MakeFontメソッドで複数個のCTexを作成して、それのDrawする位置を調節することで、複数行には対応します。故に行間設定は存在しません。 戻り値Draw@CTex作成された文字のテクスチャが返ります。CTexの使い方は、Draw@CTexを参照されたし。 サンプルコード func Main()const FPS int 30 var fontData Draw@CFont Draw@LoadFont("meiryo.ttc")var fontMes []char "くいなちゃん6さい"var fontImage Draw@CTex fontData.MakeTex(24,fontMes,0) var fontMesStream []char ""var fontImageStream Draw@CTex fontData.MakeTex(24,fontMesStream,0)var showCnt int 0 {Width()やHeight()を使えば文字テクスチャーの長さがpxで取得できる}do Dbg@Log("横幅 " ~ fontImage.Width().ToStr() ~ ",縦幅 " ~ fontImage.Height().ToStr()) while(true)do Kuin@Act() {(50,50)の位置に、文字を表示する}do fontImage.Draw(0.0,0.0,fontImage.Width(),fontImage.Height(),50.0,50.0,1.0,1.0,1.0,1.0) {(50,100)の位置に、0.5秒ごとに1文字づつ表示させる}if(Kuin@Cnt()%(FPS/2) = 0)if(showCnt fontMes.Len())do fontMesStream ~ fontMes[showCnt].ToStr()do showCnt + 1elsedo fontMesStream ""do showCnt 0end ifdo fontImageStream fontData.MakeTex(24,fontMesStream,0) {テクスチャーの更新}end if{RGBAの部分を調節することで文字の色を変更することも可能例えば、16#21E9DF(水色っぽい感じの色)を表示させたかったら、rに 「(16#21 $ float) / (16#ff $ float)」の値をgに 「(16#e9 $ float) / (16#ff $ float)」の値をbに 「(16#df $ float) / 816#ff $ float)」の値をそれぞれ与えてやれば、水色っぽい色になる。}do fontImageStream.Draw(0.0,0.0,fontImageStream.Width(),fontImageStream.Height(),50.0,100.0,(16#21$float)/(16#ff$float),(16#e9$float)/(16#ff$float),(16#df$float)/(16#ff$float),1.0)end whileend func ソースコードをUTF-8で保存しないと全角文字が文字化けします!(情報置いとくので整備おねがいします・・・) CObj 説明 Kuinで3Dモデルを扱う為に使うクラスです。 補足 所有メソッド Draw(tex CTex , normal CTex , group int , anim float) なし 説明 引数tex CTex3Dモデルに使用するテクスチャの画像を指定します。LoadTexで作成したオブジェクトを指定してください。 nullでも動作しますが、3Dモデルの表面は真っ黒になります。 normal CTex3Dモデルの表面の凹凸を表す画像を指定します。LoadTexで作成したオブジェクトを指定してください。 使用しない場合はnullを指定してください group int描画する3Dモデル内のグループの番号(0から始まるインデックス)を指定してください。 anim floatアニメーションのキーフレームを指定する。0.0なら1番目のキー、1.0なら2番目のキーになり、0.5なら1番目と2番目のキーの中間の変形具合になります。 戻り値なしないよっ サンプルコード(Ver1.00) func Main()var model Draw@CObj Draw@LoadObj("sample.knobj") {knobjファイルをLoadしてくる}var tex Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる} while()do Kuin@Act() {ここにはいい感じサンプルコードと説明が書かれる予定} do model.Draw(tex, null, 0, 0.0)end whileend func
https://w.atwiki.jp/artpromotion/pages/107.html
締切: 2009/11/23 タイプ: ギャラリー展覧会 展覧期間: 2009/12/5-20 開催場所: アメリカ ニューヨーク州 ニューヨーク 会場: climate/gallery (ニューヨーク) 後援: climate/gallery 賞: 10人の最優秀賞、カタログ、ニューヨークのアート専門家への提示 応募条件: ドローイング、初めての自己表現方法、アーティストによってかつてないほどに受け入れられ、 手のちからにのみよってダイレクトに描かれた絵・・・。 「The Time of Drawing」(ドローイングの時代)が今回の展覧会のテーマです。 料金: $35.00 /3 作品 リンク: ウェブサイト: http //climategallery.com/ 要綱: http //www.climategallery.com/pdf/climate_opencall_dec09_derzeitofdrawing ※応募の際には、必ず主催者ウェブサイトの内容、要綱を確認してください。 広告
https://w.atwiki.jp/appwiki/pages/27.html
UIImageViewの拡大・縮小はプロパティ値を変更するなどで、比較的簡単に実現できますが、UIImageをリサイズしようとするとなかなか面倒な処理を行わなければなりません。 リサイズ(サイズ指定バージョン) UIImage *img_bf = [UIImage imageNamed @"hoge.png"]; UIImage *img_af; CGFloat width = 200; CGFloat height = 200; UIGraphicsBeginImageContext(CGSizeMake(width, height)); [img_bf drawInRect CGRectMake(0, 0, width, height)]; img_af = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); よくわかる?解説 細かく見ていくと結構簡単な処理です。 UIImage *img_bf; ← リサイズ前のUIImageを取得 UIImage *img_af; ← リサイズ後のUIImageを準備しておく CGFloat width = 200 ← リサイズ後の幅を指定 CGFloat height = 200; ← リサイズ後の高さを指定 UIGraphicsBeginImageContext(CGSizeMake(width, height)) ← リサイズする大きさのコンテキストを作成 [img_bf drawInRect CGRectMake(0, 0, width, height)]; ← その領域に描画してみる img_af = UIGraphicsGetImageFromCurrentImageContext(); ← 描画されたUIImageを取得 UIGraphicsEndImageContext() ← 作った画面外描画領域を破棄(後片付けみたいなもんです) リサイズ(割合指定バージョン) UIImage *img_bf = [UIImage imageNamed @"hoge.png"]; UIImage *img_af; float widthPer = 2.5; float heightPer = 2.5; CGSize resize = CGSizeMake(img_bf.size.width * widthPer, img_bf.size.height * heightPer); UIGraphicsBeginImageContext(resize); [img_bf drawInRect CGRectMake(0, 0, resize.width, resize.height)]; img_af = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); よくわかる?解説 サイズ指定バージョンとの違いは、リサイズ前のUIImageデータの大きさを見て、それに対して任意の倍率をかけ算していること CGSize resize = CGSizeMake(img_bf.size.width * widthPer, img_bf.size.height * heightPer); ← これです
https://w.atwiki.jp/tsukune/pages/218.html
描画プレーン 描画プレーンは、今作業している平面であり、シェイプを描いたり、スウィープパスを合わせたり、オブジェクトを見たりしている面です。デフォルトでは、描画プレーンはワーキングボックスのX軸とY軸のあいだになります。描画面は、まわりより線が明るくハイライトされています。 Note:描画プレーンの変更と移動についての情報は、"Changing Your Point of View"を参照してください。 090-5.jpg The default Drawing plane lies on the Working box s X and Y axes.
https://w.atwiki.jp/masstexting/pages/10.html
Businesses use Mass Texting to keep customers interested in their products or services. Real-time promotions and notifications are great ways to engage the customer and show that your product or service is one to come back to.
https://w.atwiki.jp/ruphy/pages/36.html
CoreTextArcCocoa Rubyに置き換えながら内容を理解する def draw_rect(rect) return if (@font.nil? or @string.nil?) # コンテキスト初期化 context = NSGraphicsContext.current_context.graphics_port context.set_text_matrix CGAffineTransform Identity # 背景色と背景塗り NSColor.whitecolor.set rect.fill # 文字列と行検査 line = CTLine CreateWithAttributedString(@attributed_string) glyph_count = line.get_glyph_count return if glyph_count.zero? # グリフ弧情報 glyph_arc_info = [] prepare_glyph_arc_info(line, glyph_count, glyph_arc_info) # 原点をビューの左下から、ビューのセンター付近へ # コンテキストの状態を保存(あとでリストアする) context.save_g_state context.translate_CTM(rect.to_CGRect.get_mid_x, rect.to_CGRect.get_mid_y -@radius / 2.0) # 検査用の赤い弧を引っ張る context. begin_path. context_add_arc(0.0, 0.0, @radius, Math PI, 0.0, 1). set_RGB_stroke_color(1.0, 0.0, 0.0, 1.0). stroke_path context.rotate_CTM(Math PI_2)# コンテキストを反時計回りに90度回す text_position = CGPoint.new(0.0, @radius) # これから実際に描画していく。直前のグリフとそれぞれのグリフの角度の埋め合わせは計算済み # # 半円状のパスに沿ってグリフが広がります context.set_text_position(text_position.x, text_position.y) run_array = line.get_glyph_runs run_count = run_array.count # glyph_offset = 0 run_array.each_with_index{|run, run_index| run_glyph_count = run.count draw_substituted_glyphs_manualy = true run_font = run.get_attributes[kCTFontAttributeName] if @dims_substituted_glyphs !(@font == run_font) then draw_substituted_glyphs_manualy = true end run_glyph_index = 0 glyph_arc_info.each_with_index{|info, run_glyph_index| glyph_range = CFRange.new(idx, 1) context.rotate_CTM -info.angle glyph_width = info.width half_glyph_width = glyph_width / 2.0 position_for_this_glyph = CGPoint.new(text_position.x - half_glyph_width, text_position.y) text_position.x -= glyph_width text_matrix = run.get_text_matrix text_matrix.tx = position_for_this_glyph.x text_matrix.ty = position_for_this_glyph.y context.set_text_matrix text_matrix if (!draw_substituted_glyphs_manually) then run.draw(context, glyph_range) else cg_font = run_font.copy_graphics_font(nil) glyph = run.get_glyph(glyph_range) position = run.get_positions(glyph_range) context.set_font(cg_font) context.set_font_size(run_font.get_size) context.set_RGB_fill_color(0.25, 0.25, 0.25, 0.5) context.show_glyphs_at_positions(glyph, position, 1) end # グリフ外接枠の表示(青枠) if @shows_glyph_bounds.nonzero? then glyph_bounds = run.get_image_bounds(context, glyph_range) context.set_RGB_stroke_color(0.0, 0.0, 1.0, 1.0) context.stroke_rect(glyph_bounds) end # 行メトリクスによって定義された境界線の表示 if @show_line_metrics.nonzero? then [ascent, descent] = run.get_typographic_bounds(nil) line_metrics = CGRect.new(-half_glyph_width, position_for_this_glyph.y - descent, glyph_width, ascent+descent) context.set_RGB_stroke_color(0.0, 1.0, 0.0, 1.0) context.stroke_rect(line_metrics) end } glyph_offset += run_glyph_count } context.restore_g_state glyph_arc_info.free line.release end - (void)drawRect (NSRect)rect { // Don t draw if we don t have a font or string // フォントや文字列が無い場合は、即リターン if (self.font == NULL || self.string == NULL) return; // Initialize the text matrix to a known value // テキストマトリックスをKnownValueに対して初期化する CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort]; CGContextSetTextMatrix(context, CGAffineTransformIdentity); // Draw a white background // 背景を白で描画 [[NSColor whiteColor] set]; NSRectFill(rect); CTLineRef line = CTLineCreateWithAttributedString((CFAttributedStringRef)self.attributedString); assert(line != NULL); CFIndex glyphCount = CTLineGetGlyphCount(line); if (glyphCount == 0) { CFRelease(line); return; } GlyphArcInfo *glyphArcInfo = (GlyphArcInfo*)calloc(glyphCount, sizeof(GlyphArcInfo)); PrepareGlyphArcInfo(line, glyphCount, glyphArcInfo); // Move the origin from the lower left of the view nearer to its center. CGContextSaveGState(context); CGContextTranslateCTM(context, CGRectGetMidX(NSRectToCGRect(rect)), CGRectGetMidY(NSRectToCGRect(rect)) - self.radius / 2.0); // Stroke the arc in red for verification. CGContextBeginPath(context); CGContextAddArc(context, 0.0, 0.0, self.radius, M_PI, 0.0, 1); CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0); CGContextStrokePath(context); // Rotate the context 90 degrees counterclockwise. CGContextRotateCTM(context, M_PI_2); // Now for the actual drawing. The angle offset for each glyph relative to the previous glyph has already been calculated; with that information in hand, draw those glyphs overstruck and centered over one another, making sure to rotate the context after each glyph so the glyphs are spread along a semicircular path. CGPoint textPosition = CGPointMake(0.0, self.radius); CGContextSetTextPosition(context, textPosition.x-61.2, textPosition.y); CFArrayRef runArray = CTLineGetGlyphRuns(line); CFIndex runCount = CFArrayGetCount(runArray); CFIndex glyphOffset = 0; CFIndex runIndex = 0; for (; runIndex runCount; runIndex++) { CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runArray, runIndex); CFIndex runGlyphCount = CTRunGetGlyphCount(run); BooleandrawSubstitutedGlyphsManually = false; CTFontRef runFont = CFDictionaryGetValue(CTRunGetAttributes(run), kCTFontAttributeName); // Determine if we need to draw substituted glyphs manually. Do so if the runFont is not the same as the overall font. if (self.dimsSubstitutedGlyphs ![self.font isEqual (NSFont *)runFont]) { drawSubstitutedGlyphsManually = true; } CFIndex runGlyphIndex = 0; for (; runGlyphIndex runGlyphCount; runGlyphIndex++) { CFRange glyphRange = CFRangeMake(runGlyphIndex, 1); CGContextRotateCTM(context, -(glyphArcInfo[runGlyphIndex + glyphOffset].angle)); // Center this glyph by moving left by half its width. CGFloat glyphWidth = glyphArcInfo[runGlyphIndex + glyphOffset].width; CGFloat halfGlyphWidth = glyphWidth / 2.0; CGPoint positionForThisGlyph = CGPointMake(textPosition.x - halfGlyphWidth, textPosition.y); // Glyphs are positioned relative to the text position for the line, so offset text position leftwards by this glyph s width in preparation for the next glyph. textPosition.x -= glyphWidth; CGAffineTransform textMatrix = CTRunGetTextMatrix(run); textMatrix.tx = positionForThisGlyph.x; textMatrix.ty = positionForThisGlyph.y; CGContextSetTextMatrix(context, textMatrix); if (!drawSubstitutedGlyphsManually) { CTRunDraw(run, context, glyphRange); } else { // We need to draw the glyphs manually in this case because we are effectively applying a graphics operation by setting the context fill color. Normally we would use kCTForegroundColorAttributeName, but this does not apply as we don t know the ranges for the colors in advance, and we wanted demonstrate how to manually draw. CGFontRef cgFont = CTFontCopyGraphicsFont(runFont, NULL); CGGlyph glyph; CGPoint position; CTRunGetGlyphs(run, glyphRange, glyph); CTRunGetPositions(run, glyphRange, position); CGContextSetFont(context, cgFont); CGContextSetFontSize(context, CTFontGetSize(runFont)); CGContextSetRGBFillColor(context, 0.25, 0.25, 0.25, 0.5); CGContextShowGlyphsAtPositions(context, glyph, position, 1); CFRelease(cgFont); } // Draw the glyph bounds グリフ外接枠の表示(青) if ((self.showsGlyphBounds) != 0) { CGRect glyphBounds = CTRunGetImageBounds(run, context, glyphRange); CGContextSetRGBStrokeColor(context, 0.0, 0.0, 1.0, 1.0);// 青 CGContextStrokeRect(context, glyphBounds); } // Draw the bounding boxes defined by the line metrics() 行の if ((self.showsLineMetrics) != 0) { CGRect lineMetrics; CGFloat ascent, descent; CTRunGetTypographicBounds(run, glyphRange, ascent, descent, NULL); // The glyph is centered around the y-axis lineMetrics.origin.x = -halfGlyphWidth; lineMetrics.origin.y = positionForThisGlyph.y - descent; lineMetrics.size.width = glyphWidth; lineMetrics.size.height = ascent + descent; CGContextSetRGBStrokeColor(context, 0.0, 1.0, 0.0, 1.0);// 緑 CGContextStrokeRect(context, lineMetrics); } } glyphOffset += runGlyphCount; } CGContextRestoreGState(context); free(glyphArcInfo); CFRelease(line); }